<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en-US">
<head>
<!-- GenHTML revision 25226-->
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Development Roles - The Java EE 6 Tutorial</title>
<meta name="robots" content="index,follow">
<meta name="robots" content="index,follow">
<meta name="date" content="2011-03-01">
<link rel="stylesheet" type="text/css" href="css/default.css">
<link rel="stylesheet" type="text/css" href="css/ipg.css">
<link rel="stylesheet" type="text/css" href="css/javaeetutorial.css">
</head>

<body>

<table border="0" cellpadding="5" cellspacing="0" width="100%">
<tbody>
   <tr valign="top">
      <td width="400px"><p class="toc level1"><a href="docinfo.html">Document Information</a></p>
<p class="toc level1 tocsp"><a href="gexaf.html">Preface</a></p>
<p class="toc level1 tocsp"><a href="gfirp.html">Part&nbsp;I&nbsp;Introduction</a></p>
<p class="toc level2"><a href="bnaaw.html">1.&nbsp;&nbsp;Overview</a></p>
<p class="toc level3"><a href="giqvh.html">Java EE 6 Platform Highlights</a></p>
<p class="toc level3"><a href="bnaax.html">Java EE Application Model</a></p>
<p class="toc level3"><a href="bnaay.html">Distributed Multitiered Applications</a></p>
<p class="toc level4"><a href="bnaay.html#bnaba">Security</a></p>
<p class="toc level4"><a href="bnaay.html#bnabb">Java EE Components</a></p>
<p class="toc level4"><a href="bnaay.html#bnabc">Java EE Clients</a></p>
<p class="toc level5"><a href="bnaay.html#bnabd">Web Clients</a></p>
<p class="toc level5"><a href="bnaay.html#bnabf">Application Clients</a></p>
<p class="toc level5"><a href="bnaay.html#bnabe">Applets</a></p>
<p class="toc level5"><a href="bnaay.html#bnabg">The JavaBeans Component Architecture</a></p>
<p class="toc level5"><a href="bnaay.html#bnabh">Java EE Server Communications</a></p>
<p class="toc level4 tocsp"><a href="bnaay.html#bnabj">Web Components</a></p>
<p class="toc level4"><a href="bnaay.html#bnabk">Business Components</a></p>
<p class="toc level4"><a href="bnaay.html#bnabl">Enterprise Information System Tier</a></p>
<p class="toc level3 tocsp"><a href="bnabo.html">Java EE Containers</a></p>
<p class="toc level4"><a href="bnabo.html#bnabp">Container Services</a></p>
<p class="toc level4"><a href="bnabo.html#bnabq">Container Types</a></p>
<p class="toc level3 tocsp"><a href="bnabs.html">Web Services Support</a></p>
<p class="toc level4"><a href="bnabs.html#bnabt">XML</a></p>
<p class="toc level4"><a href="bnabs.html#bnabu">SOAP Transport Protocol</a></p>
<p class="toc level4"><a href="bnabs.html#bnabv">WSDL Standard Format</a></p>
<p class="toc level3 tocsp"><a href="bnabx.html">Java EE Application Assembly and Deployment</a></p>
<p class="toc level3"><a href="bnaby.html">Packaging Applications</a></p>
<div id="scrolltoc" class="onpage">
<p class="toc level3"><a href="">Development Roles</a></p>
<p class="toc level4"><a href="#bnacb">Java EE Product Provider</a></p>
<p class="toc level4"><a href="#bnacc">Tool Provider</a></p>
<p class="toc level4"><a href="#bnacd">Application Component Provider</a></p>
<p class="toc level5"><a href="#bnace">Enterprise Bean Developer</a></p>
<p class="toc level5"><a href="#bnacf">Web Component Developer</a></p>
<p class="toc level5"><a href="#bnacg">Application Client Developer</a></p>
<p class="toc level4 tocsp"><a href="#bnach">Application Assembler</a></p>
<p class="toc level4"><a href="#bnaci">Application Deployer and Administrator</a></p>
</div>
<p class="toc level3 tocsp"><a href="bnacj.html">Java EE 6 APIs</a></p>
<p class="toc level4"><a href="bnacj.html#bnacl">Enterprise JavaBeans Technology</a></p>
<p class="toc level4"><a href="bnacj.html#bnacm">Java Servlet Technology</a></p>
<p class="toc level4"><a href="bnacj.html#bnacp">JavaServer Faces Technology</a></p>
<p class="toc level4"><a href="bnacj.html#bnacn">JavaServer Pages Technology</a></p>
<p class="toc level4"><a href="bnacj.html#bnaco">JavaServer Pages Standard Tag Library</a></p>
<p class="toc level4"><a href="bnacj.html#bnadb">Java Persistence API</a></p>
<p class="toc level4"><a href="bnacj.html#bnacr">Java Transaction API</a></p>
<p class="toc level4"><a href="bnacj.html#girbt">Java API for RESTful Web Services</a></p>
<p class="toc level4"><a href="bnacj.html#gjxsd">Managed Beans</a></p>
<p class="toc level4"><a href="bnacj.html#gjxvo">Contexts and Dependency Injection for the Java EE Platform (JSR 299)</a></p>
<p class="toc level4"><a href="bnacj.html#gjxvg">Dependency Injection for Java (JSR 330)</a></p>
<p class="toc level4"><a href="bnacj.html#gjxty">Bean Validation</a></p>
<p class="toc level4"><a href="bnacj.html#bnacq">Java Message Service API</a></p>
<p class="toc level4"><a href="bnacj.html#bnacz">Java EE Connector Architecture</a></p>
<p class="toc level4"><a href="bnacj.html#bnacs">JavaMail API</a></p>
<p class="toc level4"><a href="bnacj.html#girbe">Java Authorization Contract for Containers</a></p>
<p class="toc level4"><a href="bnacj.html#girgp">Java Authentication Service Provider Interface for Containers</a></p>
<p class="toc level3 tocsp"><a href="girdr.html">Java EE 6 APIs in the Java Platform, Standard Edition 6.0</a></p>
<p class="toc level4"><a href="girdr.html#bnada">Java Database Connectivity API</a></p>
<p class="toc level4"><a href="girdr.html#bnadc">Java Naming and Directory Interface API</a></p>
<p class="toc level4"><a href="girdr.html#bnact">JavaBeans Activation Framework</a></p>
<p class="toc level4"><a href="girdr.html#bnacu">Java API for XML Processing</a></p>
<p class="toc level4"><a href="girdr.html#bnacw">Java Architecture for XML Binding</a></p>
<p class="toc level4"><a href="girdr.html#bnacx">SOAP with Attachments API for Java</a></p>
<p class="toc level4"><a href="girdr.html#bnacv">Java API for XML Web Services</a></p>
<p class="toc level4"><a href="girdr.html#bnadd">Java Authentication and Authorization Service</a></p>
<p class="toc level3 tocsp"><a href="bnadf.html">GlassFish Server Tools</a></p>
<p class="toc level2 tocsp"><a href="gfiud.html">2.&nbsp;&nbsp;Using the Tutorial Examples</a></p>
<p class="toc level1 tocsp"><a href="bnadp.html">Part&nbsp;II&nbsp;The Web Tier</a></p>
<p class="toc level2"><a href="bnadr.html">3.&nbsp;&nbsp;Getting Started with Web Applications</a></p>
<p class="toc level2"><a href="bnaph.html">4.&nbsp;&nbsp;JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="giepx.html">5.&nbsp;&nbsp;Introduction to Facelets</a></p>
<p class="toc level2"><a href="gjddd.html">6.&nbsp;&nbsp;Expression Language</a></p>
<p class="toc level2"><a href="bnaqz.html">7.&nbsp;&nbsp;Using JavaServer Faces Technology in Web Pages</a></p>
<p class="toc level2"><a href="gjcut.html">8.&nbsp;&nbsp;Using Converters, Listeners, and Validators</a></p>
<p class="toc level2"><a href="bnatx.html">9.&nbsp;&nbsp;Developing with JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="gkmaa.html">10.&nbsp;&nbsp;JavaServer Faces Technology Advanced Concepts</a></p>
<p class="toc level2"><a href="bnawo.html">11.&nbsp;&nbsp;Configuring JavaServer Faces Applications</a></p>
<p class="toc level2"><a href="gkiow.html">12.&nbsp;&nbsp;Using Ajax with JavaServer Faces Technology</a></p>
<p class="toc level2"><a href="gkhxa.html">13.&nbsp;&nbsp;Advanced Composite Components</a></p>
<p class="toc level2"><a href="bnavg.html">14.&nbsp;&nbsp;Creating Custom UI Components</a></p>
<p class="toc level2"><a href="bnafd.html">15.&nbsp;&nbsp;Java Servlet Technology</a></p>
<p class="toc level2"><a href="bnaxu.html">16.&nbsp;&nbsp;Internationalizing and Localizing Web Applications</a></p>
<p class="toc level1 tocsp"><a href="bnayk.html">Part&nbsp;III&nbsp;Web Services</a></p>
<p class="toc level2"><a href="gijti.html">17.&nbsp;&nbsp;Introduction to Web Services</a></p>
<p class="toc level2"><a href="bnayl.html">18.&nbsp;&nbsp;Building Web Services with JAX-WS</a></p>
<p class="toc level2"><a href="giepu.html">19.&nbsp;&nbsp;Building RESTful Web Services with JAX-RS</a></p>
<p class="toc level2"><a href="gjjxe.html">20.&nbsp;&nbsp;Advanced JAX-RS Features</a></p>
<p class="toc level2"><a href="gkojl.html">21.&nbsp;&nbsp;Running the Advanced JAX-RS Example Application</a></p>
<p class="toc level1 tocsp"><a href="bnblr.html">Part&nbsp;IV&nbsp;Enterprise Beans</a></p>
<p class="toc level2"><a href="gijsz.html">22.&nbsp;&nbsp;Enterprise Beans</a></p>
<p class="toc level2"><a href="gijre.html">23.&nbsp;&nbsp;Getting Started with Enterprise Beans</a></p>
<p class="toc level2"><a href="gijrb.html">24.&nbsp;&nbsp;Running the Enterprise Bean Examples</a></p>
<p class="toc level2"><a href="bnbpk.html">25.&nbsp;&nbsp;A Message-Driven Bean Example</a></p>
<p class="toc level2"><a href="gkcqz.html">26.&nbsp;&nbsp;Using the Embedded Enterprise Bean Container</a></p>
<p class="toc level2"><a href="gkidz.html">27.&nbsp;&nbsp;Using Asynchronous Method Invocation in Session Beans</a></p>
<p class="toc level1 tocsp"><a href="gjbnr.html">Part&nbsp;V&nbsp;Contexts and Dependency Injection for the Java EE Platform</a></p>
<p class="toc level2"><a href="giwhb.html">28.&nbsp;&nbsp;Introduction to Contexts and Dependency Injection for the Java EE Platform</a></p>
<p class="toc level2"><a href="gjbls.html">29.&nbsp;&nbsp;Running the Basic Contexts and Dependency Injection Examples</a></p>
<p class="toc level2"><a href="gjehi.html">30.&nbsp;&nbsp;Contexts and Dependency Injection for the Java EE Platform: Advanced Topics</a></p>
<p class="toc level2"><a href="gkhre.html">31.&nbsp;&nbsp;Running the Advanced Contexts and Dependency Injection Examples</a></p>
<p class="toc level1 tocsp"><a href="bnbpy.html">Part&nbsp;VI&nbsp;Persistence</a></p>
<p class="toc level2"><a href="bnbpz.html">32.&nbsp;&nbsp;Introduction to the Java Persistence API</a></p>
<p class="toc level2"><a href="gijst.html">33.&nbsp;&nbsp;Running the Persistence Examples</a></p>
<p class="toc level2"><a href="bnbtg.html">34.&nbsp;&nbsp;The Java Persistence Query Language</a></p>
<p class="toc level2"><a href="gjitv.html">35.&nbsp;&nbsp;Using the Criteria API to Create Queries</a></p>
<p class="toc level2"><a href="gkjiq.html">36.&nbsp;&nbsp;Creating and Using String-Based Criteria Queries</a></p>
<p class="toc level2"><a href="gkjjf.html">37.&nbsp;&nbsp;Controlling Concurrent Access to Entity Data with Locking</a></p>
<p class="toc level2"><a href="gkjia.html">38.&nbsp;&nbsp;Improving the Performance of Java Persistence API Applications By Setting a Second-Level Cache</a></p>
<p class="toc level1 tocsp"><a href="gijrp.html">Part&nbsp;VII&nbsp;Security</a></p>
<p class="toc level2"><a href="bnbwj.html">39.&nbsp;&nbsp;Introduction to Security in the Java EE Platform</a></p>
<p class="toc level2"><a href="bncas.html">40.&nbsp;&nbsp;Getting Started Securing Web Applications</a></p>
<p class="toc level2"><a href="bnbyk.html">41.&nbsp;&nbsp;Getting Started Securing Enterprise Applications</a></p>
<p class="toc level1 tocsp"><a href="gijue.html">Part&nbsp;VIII&nbsp;Java EE Supporting Technologies</a></p>
<p class="toc level2"><a href="gijto.html">42.&nbsp;&nbsp;Introduction to Java EE Supporting Technologies</a></p>
<p class="toc level2"><a href="bncih.html">43.&nbsp;&nbsp;Transactions</a></p>
<p class="toc level2"><a href="bncjh.html">44.&nbsp;&nbsp;Resource Connections</a></p>
<p class="toc level2"><a href="bncdq.html">45.&nbsp;&nbsp;Java Message Service Concepts</a></p>
<p class="toc level2"><a href="bncgv.html">46.&nbsp;&nbsp;Java Message Service Examples</a></p>
<p class="toc level2"><a href="gkahp.html">47.&nbsp;&nbsp;Advanced Bean Validation Concepts and Examples</a></p>
<p class="toc level2"><a href="gkeed.html">48.&nbsp;&nbsp;Using Java EE Interceptors</a></p>
<p class="toc level1 tocsp"><a href="gkgjw.html">Part&nbsp;IX&nbsp;Case Studies</a></p>
<p class="toc level2"><a href="gkaee.html">49.&nbsp;&nbsp;Duke's Tutoring Case Study Example</a></p>
<p class="toc level1 tocsp"><a href="idx-1.html">Index</a></p>
</td>
      <td width="10px">&nbsp;</td>
      <td>
         <div class="header">
             <div class="banner">
                <table width="100%" border="0" cellpadding="5" cellspacing="0">
                   <tbody>
                      <tr>
                         <td valign="bottom"><p class="Banner">The Java EE 6 Tutorial
</p></td>
                         <td align="right"  valign="bottom"><img src="graphics/javalogo.png" alt="Java Coffee Cup logo"></td>
                      </tr>
                   </tbody>
                </table>
             </div>

             <div class="header-links">
	         <a href="./index.html">Home</a> | 
<a href="../information/download.html">Download</a> | 
<a href="./javaeetutorial6.pdf">PDF</a> | 
<a href="../information/faq.html">FAQ</a> | 
<a href="http://download.oracle.com/javaee/feedback.htm">Feedback</a>

             </div>
             <div class="navigation">
                 <a href="bnaby.html"><img src="graphics/leftButton.gif" border="0" alt="Previous" title="Previous"></a>
                 <a href="p1.html"><img src="graphics/upButton.gif" border="0" alt="Contents" title="Contents"></a>
                 <a href="bnacj.html"><img src="graphics/rightButton.gif" border="0" alt="Next" title="Next"></a>
             </div>
         </div>

	 <div class="maincontent">      	 
             

<a name="bnaca"></a><h2>Development Roles</h2>
<a name="indexterm-60"></a><p>Reusable modules make it possible to divide the application development and deployment process
into distinct roles so that different people or companies can perform different parts
of the process.</p>

<p>The first two roles, Java EE product provider and tool provider, involve purchasing
and installing the Java EE product and tools. After software is purchased and
installed, Java EE components can be developed by application component providers, assembled by
application assemblers, and deployed by application deployers. In a large organization, each of
these roles might be executed by different individuals or teams. This division of
labor works because each of the earlier roles outputs a portable file that
is the input for a subsequent role. For example, in the application component
development phase, an enterprise bean software developer delivers EJB JAR files. In the application
assembly role, another developer may combine these EJB JAR files into a Java
EE application and save it in an EAR file. In the application deployment
role, a system administrator at the customer site uses the EAR file to
install the Java EE application into a Java EE server.</p>

<p>The different roles are not always executed by different people. If you work
for a small company, for example, or if you are prototyping a
sample application, you might perform the tasks in every phase.</p>



<a name="bnacb"></a><h3>Java EE Product Provider</h3>
<p><a name="indexterm-61"></a>The Java EE product provider is the company that designs and makes available
for purchase the Java EE platform APIs and other features defined in the
Java EE specification. Product providers are typically application server vendors that implement the
Java EE platform according to the Java EE 6 Platform specification.</p>



<a name="bnacc"></a><h3>Tool Provider</h3>
<p><a name="indexterm-62"></a>The tool provider is the company or person who creates development, assembly, and
packaging tools used by component providers, assemblers, and deployers.</p>



<a name="bnacd"></a><h3>Application Component Provider</h3>
<a name="indexterm-63"></a><p>The application component provider is the company or person who creates web components,
enterprise beans, applets, or application clients for use in Java EE applications.</p>



<a name="bnace"></a><h4>Enterprise Bean Developer</h4>
<p><a name="indexterm-64"></a>An enterprise bean developer performs the following tasks to deliver an EJB JAR
file that contains one or more enterprise beans:</p>


<ul><li><p>Writes and compiles the source code</p>

</li>
<li><p>Specifies the deployment descriptor (optional)</p>

</li>
<li><p>Packages the <tt>.class</tt> files and deployment descriptor into the EJB JAR file</p>

</li></ul>


<a name="bnacf"></a><h4>Web Component Developer</h4>
<p><a name="indexterm-65"></a>A web component developer performs the following tasks to deliver a WAR file
containing one or more web components:</p>


<ul><li><p>Writes and compiles servlet source code</p>

</li>
<li><p>Writes JavaServer Faces, JSP, and HTML files</p>

</li>
<li><p>Specifies the deployment descriptor (optional)</p>

</li>
<li><p>Packages the <tt>.class</tt>, <tt>.jsp</tt>, and<tt>.html</tt> files and deployment descriptor into the WAR file</p>

</li></ul>


<a name="bnacg"></a><h4>Application Client Developer</h4>
<p><a name="indexterm-66"></a>An application client developer performs the following tasks to deliver a JAR file
containing the application client:</p>


<ul><li><p>Writes and compiles the source code</p>

</li>
<li><p>Specifies the deployment descriptor for the client (optional)</p>

</li>
<li><p>Packages the <tt>.class</tt> files and deployment descriptor into the JAR file</p>

</li></ul>


<a name="bnach"></a><h3>Application Assembler</h3>
<p><a name="indexterm-67"></a>The application assembler is the company or person who receives application modules from
component providers and may assemble them into a Java EE application EAR file.
The assembler or deployer can edit the deployment descriptor directly or can use
tools that correctly add XML tags according to interactive selections. </p>

<p>A software developer performs the following tasks to deliver an EAR file containing
the Java EE application:</p>


<ul><li><p>Assembles EJB JAR and WAR files created in the previous phases into a Java EE application (EAR) file</p>

</li>
<li><p>Specifies the deployment descriptor for the Java EE application (optional)</p>

</li>
<li><p>Verifies that the contents of the EAR file are well formed and comply with the Java EE specification</p>

</li></ul>


<a name="bnaci"></a><h3>Application Deployer and Administrator</h3>
<p><a name="indexterm-68"></a>The application deployer and administrator is the company or person who configures and
deploys the Java EE application, administers the computing and networking infrastructure where Java EE
applications run, and oversees the runtime environment. Duties include setting transaction controls and
security attributes and specifying connections to databases.</p>

<p><a name="indexterm-69"></a>During configuration, the deployer follows instructions supplied by the application component provider to resolve
external dependencies, specify security settings, and assign transaction attributes. During installation, the deployer
moves the application components to the server and generates the container-specific classes and
interfaces.</p>

<p>A deployer or system administrator performs the following tasks to install and configure
a Java EE application:</p>


<ul><li><p>Configures the Java EE application for the operational environment</p>

</li>
<li><p>Verifies that the contents of the EAR file are well formed and comply with the Java EE specification</p>

</li>
<li><p>Deploys (installs) the Java EE application EAR file into the Java EE server</p>

</li></ul>

         </div>
         <div class="navigation">
             <a href="bnaby.html"><img src="graphics/leftButton.gif" border="0" alt="Previous" title="Previous"></a>
             <a href="p1.html"><img src="graphics/upButton.gif" border="0" alt="Contents" title="Contents"></a>
             <a href="bnacj.html"><img src="graphics/rightButton.gif" border="0" alt="Next" title="Next"></a>
         </div>

         <div class="copyright">
      	    <p>Copyright &copy; 2011, Oracle and/or its affiliates. All rights reserved. <a href="docinfo.html">Legal Notices</a></p>
      	 </div>

      </td>
   </tr>
</tbody>
</table>
</body>
</html>

